@CLASS
pfQueueTests

@USE
pf/tests/pfTestCase.p

@BASE
pfTestCase

@create[aTestName]
  ^BASE:create[$aTestName]

@setUp[]
  ^use[pf/collections/pfQueue.p]
  $qu[^pfQueue::create[]]

@enqueueTest[][res]
  ^qu.enqueue[1]
  ^qu.enqueue[2]
  ^qu.enqueue[3]
  ^qu.enqueue[4]
  ^qu.enqueue[5]
  ^qu.enqueue[6]
  ^qu.enqueue[7]

  $res[^qu.foreach[it]{$it}[|]]
  ^pfAssert:isTrue($res eq "1|2|3|4|5|6|7")[Неверный результат итератора: "$res"]

@dequeueTest[][res]
  ^qu.enqueue[1]
  ^qu.enqueue[2]
  ^qu.enqueue[3]
  ^qu.enqueue[4]
  ^qu.enqueue[5]
  ^qu.enqueue[6]
  ^qu.enqueue[7]

  ^qu.dequeue[]
  ^qu.dequeue[]
  ^qu.dequeue[]

  $res[^qu.foreach[it]{$it}[|]]
  ^pfAssert:isTrue($res eq "4|5|6|7")[Неверный результат итератора: "$res"]


@peekTest[][res]
  ^qu.enqueue[1]
  ^qu.enqueue[2]
  ^qu.enqueue[3]
  ^qu.enqueue[4]
  ^qu.enqueue[5]
  ^qu.enqueue[6]
  ^qu.enqueue[7]

  ^qu.dequeue[]
  ^qu.dequeue[]
  ^qu.dequeue[]

  ^pfAssert:isTrue(^qu.peek[] eq "4")[Неверный результат: "^qu.peek[]"]
